﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using System.Xml;

namespace GameVLTK
{
    public class MyMouse : VisibleGameEntity
    {
        private int _CurrentMouse;

        public int CurrentMouse
        {
            get { return _CurrentMouse; }
            set { _CurrentMouse = value; }
        }

        //1. Lúc bình thườn hình dạng của Mouse khác
        //2. Lúc hover chuột qua Killer hình dạng của Mouse là thanh kiếm
        //3. Lúc hover qua NPC hình dạng của Mouse là 
        public MyMouse(ContentManager content, XmlDocument doc)
        {
            this.Sprites = new List<MySprite>();

            XmlNode nDS_Mouses = doc.SelectSingleNode("//DS_MOUSES");


            //Trả về danh sách các button trong Main Menu
            XmlNodeList nlMouses = doc.SelectNodes("//MOUSE");

            this.nSprites= nlMouses.Count;

            //
            Texture2D[] txttures = null;
            int nTextures = 0;
            string prefix;
            MySprite mySprite = null;
            int []frameSeq;
            for (int i = 0; i < this.nSprites; i++)
            {
                XmlNode nMouse = nlMouses[i];

                //Tên prefix của Mouse
                prefix = nMouse.Attributes["Prefix"].Value;

                //Số lượng texture
                nTextures = int.Parse(nMouse.Attributes["So_Luong"].Value);
                txttures= new Texture2D[nTextures];

                frameSeq= new int[nTextures];
                for (int j= 0; j< nTextures; j++)
                {
                    txttures[j]= content.Load<Texture2D>(Global.PATH_MOUSES + prefix + (j + 1).ToString("00"));
                    frameSeq[j]= j;
                }

                //Khởi tạo Mouse
                mySprite = new MySprite(txttures, new Vector2(0, 0));
                mySprite.FrameSequence = frameSeq;
                this.Sprites.Add(mySprite);
            }

            this.CurrentMouse = 0;
        }

        public override void Update(GameTime gameTime)
        {
            MouseState mouseState= Mouse.GetState();
            this.TopLeft = new Vector2(mouseState.X, mouseState.Y);

          
            this.Sprites[this.CurrentMouse].Update(gameTime);
        }

        public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            this.Sprites[this.CurrentMouse].Draw(gameTime, spriteBatch);
        }
    }


}
